//
//  TPLabel.h
//  Pods
//
//  Created by caixun on 15/11/4.
//
//

#import <UIKit/UIKit.h>


@protocol TPLabelDelegate;


/*!
 *  @author   caixun ,15-06-17 16:05:40
 *
 *  @brief    Label的基类
 *
 *  @since    v1.0
 */
@interface TPLabel : UILabel


/// 扩展属性，携带字典参数
@property (nonatomic, strong) NSMutableDictionary *mdicParam;
/// 代理暂不使用
//@property (nonatomic, weak) id <TPLabelDelegate> delegate;


#pragma mark - ********************************** 初始化方法 工厂方法 *********************************

/// 设置frame
+ (TPLabel *)getWithFrame:(CGRect)frame;

/// 设置frame、文字颜色、字体
+ (TPLabel *)getWithFrame:(CGRect)frame
                      text:(NSString *)strText
                 textColor:(UIColor *)colorText
                  textFont:(UIFont *)font;

/// 设置frame、文字颜色、字体、对齐方式
+ (TPLabel *)getWithFrame:(CGRect)frame
                      text:(NSString *)strText
                 textColor:(UIColor *)colorText
                  textFont:(UIFont *)font
             textAlignment:(NSTextAlignment)textAlignment;


#pragma mark - ********************************** 初始化方法 实例方法 *********************************

/// 设置frame、文字颜色、字体
- (id)initWithFrame:(CGRect)frame
               text:(NSString *)strText
          textColor:(UIColor *)colorText
           textFont:(UIFont *)font;

/// 设置frame、文字颜色、字体、对齐方式
- (id)initWithFrame:(CGRect)frame
               text:(NSString *)strText
          textColor:(UIColor *)colorText
           textFont:(UIFont *)font
      textAlignment:(NSTextAlignment)textAlignment;


#pragma mark - *********************************** 属性设置 实例方法 **********************************

/// 给某一范围内的文字设置颜色和字体
- (void)setTextColor:(UIColor *)colorText textFont:(UIFont *)font range:(NSRange)range;

/// 给某一范围内的文字设置背景色，文字颜色（处理点击效果时可能用到）
- (void)setBgColor:(UIColor *)colorBg textColor:(UIColor *)colorText range:(NSRange)range;

/// 设置label中所有文字的行间距
- (void)setLineSpace:(CGFloat)fltLineSpace;

/* 给某一范围内的文字设置点击事件、普通颜色、高亮颜色、普通背景色、高亮背景色，高亮颜色可以不传，
 普通颜色不传时使用默认颜色（文本为黑色，背景为透明色）*/
- (void)addTarget:(id)target
           action:(SEL)selAction
  normalTextColor:(UIColor *)colorNormalText
highLightTextColor:(UIColor *)colorHighLightText
    normalBgColor:(UIColor *)colorNormalBg
 highLightBgColor:(UIColor *)colorHighLightBg
            range:(NSRange)range;


@end


@protocol TPLabelDelegate <NSObject>


@optional

/// 开始点击某个位置的文字
- (void)tpOp:(TPLabel *)lab didBeginTapCharacterAtIndex:(NSInteger)intIndex;

/// 点击了某个位置的文字
- (void)tpOp:(TPLabel *)lab didEndTapCharacterAtIndex:(NSInteger)intIndex;


@end
